#include <allegro.h>
#include <stdlib.h>
#include <unistd.h>
#include "chargement.h"
#include "collision.h"
#include "affichage.h"


int collision_background_right(perso p,BITMAP* backgroundcol)
{
	int x;
	int y;
	x=p.ix ;
	y=p.y  ;

	if( get_pixel(backgroundcol,x+100,y+10)== 255  || get_pixel(backgroundcol,x+100,y+90)== 255)
		return (1);

	return (0);
}

int collision_background_left(perso p,BITMAP* backgroundcol)
{
 	int x;
 	int y;
 	x=p.ix ;
 	y=p.y ;

 	if( get_pixel(backgroundcol,x,y+10)== 255 ||  get_pixel(backgroundcol,x,y+90)== 255)
 		return (1);

 	return (0);
}

int collision_background_down(perso p,BITMAP* backgroundcol)
{

	int x;
	int y;
	x=p.ix ;
	y=p.y ;

	if( get_pixel(backgroundcol,x,y+100)== 255 ||  get_pixel(backgroundcol,x+100,y+100)== 255)
		return (1);
	return (0);
}

int collision_background_up(perso p,BITMAP* backgroundcol)
{
	int x;
	int y;
	x=p.ix ;
	y=p.y ;

	if( get_pixel(backgroundcol,x,y)== 255 || get_pixel(backgroundcol,x+100,y)== 255)
		return (1);

	return (0);

}

int collision_background_ennem_right(ennem e,BITMAP* backgroundcol)
{
	int x;
	int y;
	x=e.ix  ;
	y=e.y  ;

	if( get_pixel(backgroundcol,x+100,y+10)== 255  || get_pixel(backgroundcol,x+100,y+90)== 255)
		return (1);

	return (0);
}

int collision_background_ennem_left(ennem e,BITMAP* backgroundcol)
{
	int x;
	int y;
	x=e.ix ;
	y=e.y ;

	if( get_pixel(backgroundcol,x,y+10)== 255 ||  get_pixel(backgroundcol,x,y+90)== 255)
		return (1);

	return (0);
}

int get_pixel(BITMAP* buffer,int x,int y)
{
	int tmp;
	tmp=getpixel(buffer,x,y);
	return((getr(tmp) + getb(tmp) + getg(tmp)) / 3);
}
int collision(perso p, ennem e)
{
if ((p.x < e.x - 150) || (p.y > e.y + 150) ||(p.x > e.x+150 ) || (p.y < e.y-150 ))
{
return 0;
}
return 1;
}
int collisioncart(perso p, cartouche c)
{

if ((c.x > p.x ) && (c.y > p.y ) && (c.x < p.x+100 ) && (c.y  < p.y+100 ))
{
return 1;
}
return 0;
}



int collisionbonus (perso p, bon b)
{
	 b.x=b.x+10;
	 b.y=b.y+15;
if ((p.x-10<b.x ) && (p.x+110 > b.x) && (p.y-15 < b.y ) && (p.y+105 > b.y ))
{
return 1;
}
return 0;
}


int collision_perso_ennem_right(perso p,ennem e)
{


	if(  p.x > e.x-100 && p.x -10 <e.x-100 && p.y+100>e.y  )
		return (1);

	return (0);
}

int collision_perso_ennem_left(perso p,ennem e)
{
	if(  p.x < e.x+100 && p.x +10 >e.x+100 && p.y+100>e.y )
		return (1);

	return (0);
}

int collision_perso_ennem_down(perso p,ennem e)
{

	if(  p.y > e.y-100  && p.x>e.x-100 &&p.x<e.x+100 )
		return (1);
	return (0);
}

int collision_perso_ennem_up(perso p,ennem e)
{
	if(  p.y < e.y && p.y +10 >e.x  )
		return (1);

	return (0);

}

int collision_fleche (ennem e,  fleche f)
{

if ((f.x+25 > e.x ) && (f.y+25 > e.y ) && (f.x+25 < e.x+100 ) && (f.y+25  < e.y+100 ))
{
return 1;
}
return 0;
}

int collision_fleche_background(fleche f,BITMAP* backgroundcol)
{



	if( get_pixel(backgroundcol,f.x+40,f.y+40)== 255 )
		return (1);
	return (0);
}



int collision_perso_ennemiii(perso p,ennem e)
{


	if(  p.x > e.x-100  )
		return (1);

	return (0);
}
